home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-18 | 1.5 KB | 51 lines | [TEXT/R*ch] |
- (* The type of the instructions of the abstract machine *)
-
- (* 1996.07.05 -- e *)
-
- open Config Const Prim;
-
- datatype ZamInstruction =
- Kquote of StructConstant
- | Kget_global of QualifiedIdent * int
- | Kset_global of QualifiedIdent * int
- | Kaccess of int
- | Kenvacc of int (* new *)
- | Kassign of int (* newer *)
- | Kgetfield of int (* new *)
- | Ksetfield of int (* new *)
- | Kpush
- | Kpop of int (* added arg *)
- | Krestart (* new *)
- | Kgrab of int (* added arg *)
- | Kapply of int (* added arg *)
- | Kappterm of int * int (* added args and renamed *)
- | Kpush_retaddr of int (* new *)
- | Kcheck_signals
- | Kreturn of int (* added arg *)
- | Kclosure of int * int (* added arg *)
- | Kclosurerec of int * int (* new *)
- | Kraise (* new *)
- | Kmakeblock of BlockTag * int
- | Kprim of primitive
- | Kpushtrap of int
- | Kpoptrap
- | Klabel of int
- | Kbranch of int
- | Kbranchif of int
- | Kbranchifnot of int
- | Kstrictbranchif of int
- | Kstrictbranchifnot of int
- | Ktest of bool_test * int
- | Kbranchinterval of int * int * int * int
- | Kswitch of int Array.array
- ;
-
- type ZamPhrase =
- {
- kph_funcs: ZamInstruction list, (* code for functions *)
- kph_inits: ZamInstruction list, (* initialization code *)
- kph_is_pure: bool (* pure = no side effects *)
- };
-
- val Nolabel = ~1;
-